Issuing event with our custom controller
CRDをinvolvedObjectとする K8s Events 発行する方法.
$ kubebuilder init
$ kubebuilder create api
の後に作成される Reconciler instanceにmemberを追加する.
code:go
// TmpReconciler reconciles a Tmp object
type TmpReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder // add
}
自動生成される SetupWithManager()内で
r.Recorder := mgr.GetEventRecorderFor("tmp-controller")みたいに初期化.
あとは record.EventRecorder interface callすればいい感じにEventが発行できる.
Links
pkg/event - pkg.go.dev/sigs.k8s.io/controller-runtime
困ったらここ
tools/record - pkg.go.dev/k8s.io/client-go
pkg/recorder/example_test.go - github.com/kubernetes.sigs/controller-runtime
EventRecorder interfaceの使い方